home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / python2.6 / lib2to3 / fixes / fix_xreadlines.py < prev    next >
Encoding:
Python Source  |  2009-04-18  |  670 b   |  25 lines

  1. """Fix "for x in f.xreadlines()" -> "for x in f".
  2.  
  3. This fixer will also convert g(f.xreadlines) into g(f.__iter__)."""
  4. # Author: Collin Winter
  5.  
  6. # Local imports
  7. from .. import fixer_base
  8. from ..fixer_util import Name
  9.  
  10.  
  11. class FixXreadlines(fixer_base.BaseFix):
  12.     PATTERN = """
  13.     power< call=any+ trailer< '.' 'xreadlines' > trailer< '(' ')' > >
  14.     |
  15.     power< any+ trailer< '.' no_call='xreadlines' > >
  16.     """
  17.  
  18.     def transform(self, node, results):
  19.         no_call = results.get("no_call")
  20.  
  21.         if no_call:
  22.             no_call.replace(Name("__iter__", prefix=no_call.get_prefix()))
  23.         else:
  24.             node.replace([x.clone() for x in results["call"]])
  25.